package com.southminority.ethnic.controller.member.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * 团队成员视图对象
 * 用于前端数据传输
 * 
 * @author SouthMinority
 */
@Data
@Schema(description = "团队成员视图对象，用于前端展示")
public class MemberVO implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "成员ID", example = "1")
    private Long id;

    @Schema(description = "姓名", example = "刘笑玲")
    private String name;

    @Schema(description = "职位", example = "教授/实验室负责人")
    private String position;

    @Schema(description = "职称", example = "博士生导师")
    private String title;

    @Schema(description = "部门/所属单位", example = "文学院")
    private String department;

    /**
     * 归属机构ID
     */
    @Schema(description = "归属机构ID", example = "1")
    private Long organizationId;

    @Schema(description = "研究方向", example = "少数民族语言信息化处理")
    private String researchDirection;

    @Schema(description = "个人简介", example = "博士，教授，博士生导师。贵州民族大学\"南方少数民族语言信息化实验室\"负责人。")
    private String introduction;

    @Schema(description = "头像URL", example = "http://example.com/avatar.jpg")
    private String avatar;

    @Schema(description = "邮箱地址", example = "liuxiaoling@gzmu.edu.cn")
    private String email;

    @Schema(description = "联系电话", example = "+86-851-83610152")
    private String phone;

    @Schema(description = "社交链接列表", example = "[{\"type\":\"email\",\"icon\":\"fas fa-envelope\",\"url\":\"mailto:liuxiaoling@gzmu.edu.cn\"}]")
    private List<Map<String, String>> socialLinks;

    @Schema(description = "个人网站URL", example = "http://homepage.gzmu.edu.cn/liuxl")
    private String website;

    @Schema(description = "学者档案链接URL（如Google Scholar, ResearchGate等）", example = "https://scholar.google.com/citations?user=xxx")
    private String scholarProfile;

    @Schema(description = "排序值，数字越小越靠前", example = "1")
    private Integer sortOrder;

    @Schema(description = "状态: 1-启用, 0-禁用, -1-已删除", example = "1", allowableValues = {"1", "0", "-1"})
    private Integer status;
}
